# -*- coding: utf-8 -*-
"""
@Time    : 2024/7/18 18:29 
@Author  : ZhangShenao 
@File    : 1.回调函数示例.py 
@Desc    : 回调函数示例

回调函数,指的是将回调函数A作为参数传给另一个主执行函数函数B
当函数B完成某些操作后,会调用(即回调)函数A
这种编程模式常见于处理异步操作,如事件监听、定时任务或网络请求等

"""


def compute(a: int, b: int, callback: callable) -> None:
    """主执行函数:计算两个数的和"""

    result = a + b

    # 执行回调函数
    callback(result)


def print_result_callback(result: int) -> None:
    """回调函数:打印结果"""
    print(f'the result is {result}')


def print_squared_result_callback(result: int) -> None:
    """回调函数:打印结果的平方"""
    print(f'the squared result is {result ** 2}')


if __name__ == '__main__':
    # 使用回调函数
    compute(1, 2, print_result_callback)  # the result is 3

    compute(3, 4, print_squared_result_callback)  # the squared result is 49
